//给你一个长度为 n 的整数数组 nums ，其中 n > 1 ，返回输出数组 output
//其中 output[i] 等于 nums 中 除 nums[i] 之外其余各元素的乘积。
//提示：题目数据保证数组之中任意元素的全部前缀元素和后缀（甚至是整个数组）的乘积都在 32 位整数范围内

//思路:左右乘积分别计算
int* productExceptSelf(int* nums, int numsSize, int* returnSize) {
	*returnSize = numsSize;
	int* arr = (int*)malloc(sizeof(int) * numsSize);
	int left, right;
	left = right = 1;
	for (int i = 0; i < numsSize; i++) {
		arr[i] = left;
		left *= nums[i];
	}
	for (int i = numsSize - 1; i >= 0; i--) {
		arr[i] *= right;
		right *= nums[i];
	}
	return arr;
}
